/*
 * @Author: ZephyrGao
 * @Date: 2024-02-08 15:23:28
 * @Description: 
 * Copyright (c) 2024 by ZephyrGao, All Rights Reserved. 
 */

// glob design
// import '@/design/index.scss';
// 注册图标
import 'virtual:svg-icons-register';
import { createApp } from 'vue'

// ant design vue design 
import 'ant-design-vue/dist/reset.css';
// element plus design 
import 'element-plus/dist/index.css';
// vue public scss
import '@/design/public/index.scss';

// locale
// import zhCn from 'element-plus/es/locale/lang/zh-cn'

// regist glob comp
// import { registerGlobComp,registerThirdGlobComp } from './components';
import registerGlobComp from './components';

import App from './App.vue'

// router
import {initRouter} from "@/router";
import { initStore } from '@/store';
import { initMock } from '@/mock';

// 创建app 实例
let app = createApp(App)

// 插件安装 app.use
app.use(registerGlobComp)

// app.config.globalProperties.$mess

// 初始化路由 router
initRouter(app)

// 初始化路由 store
initStore(app)

// 初始化Mock
initMock()



/**
 * 全局组件 app.component
 */
// 组件注册
// app.component('custom',{
//
// })

// 获取一个已注册组件
// const componentDemo = app.component('custom')

/**
 * 全局指定 app.directive
 */
// 注册（对象形式的指令）
// app.directive('my-directive', {
//     /* 自定义指令钩子 */
// })
//
// // 注册（函数形式的指令）
// app.directive('my-directive', () => {
//     /* ... */
// })
//
// // 得到一个已注册的指令
// const myDirective = app.directive('my-directive')

/**
 * 后代组件注入 app.provide
 */


app.config.errorHandler = (err) => {
    // 日志捕获
    console.error(err)
}
// 最终挂载
app.mount('#app')




// 多应用实例TODO
